﻿using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.Collections.Generic;
using GameEngine.View.Components;
using MapEngine;

namespace GameEngine.Model.Data
{
    public interface IMapVO<ItemVOId> : IVO
        where ItemVOId : IComparable<ItemVOId> 
    {
        //Properties:

        string Name { get; set; }
        /// <summary>
        /// Views sem comportamento associado
        /// </summary>
        Point Size { get; }
        ICameraVO Camera { get; set; }
        TileType TileType { get; set; }
        MapType MapType { get; set; }
        List<IViewVOId<ItemVOId>> SimpleViews { get; set; }

        //Containers:

        List<List<ITileVO>> Tiles { get; set; }
        void CreateTiles(Point size);
    }
}